﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BrokerBase.Lib.Base;
using BrokerBase.Lib.Product;

namespace BrokerBase.Lib.Policy
{
    public interface IBasePolicy:ICloneable
    {
        /// <summary>
        /// 所属的方案
        /// </summary>
        IScheme Owner { get; set; }

        ProductType ProductType { get; set; }
        /// <summary>
        /// 保险期限
        /// </summary>
        int InsurancePeriodLength { get; }

        /// <summary>
        /// 付款期限
        /// </summary>
        int PaymentPeriodLength { get; }

        /// <summary>
        /// 最大付款/保险期限
        /// </summary>
        int MaxInsuranceAge { get; set; }
        /// <summary>
        /// 保额
        /// </summary>
        double Amount { get; set; }

        /// <summary>
        /// 保费
        /// </summary>
        double Fee { get;  }
        /// <summary>
        /// 合计保费
        /// </summary>
        double TotalFee { get; }
        /// <summary>
        /// 选择的付款周期
        /// </summary>
        ITimeUnit SelectedTimeUnit { get; set; }

        string Description { get; set; }

        bool IsVerify { get; set; }

        PolicyTarget Target { get; }

    }
}
